1. Field of the Invention
The present invention relates to software defined radio systems, and particularly to sending data through cryptographic units employed in such systems.
2. Discussion of the Known Art
In a Joint Tactical Radio System (JTRS) standard known as the Software Communications Architecture (SCA), different data processors and other devices marshal or send to one another by use of a middleware common object request broker architecture, or CORBA. A so-called CORBA Orb software library provides standard procedures that enable dissimilar devices to communicate with one another. When exchanging data between dissimilar devices, the format in which bytes of the data are organized or transmitted is an important issue. If the most significant byte of the data is transmitted first, the format is called Big Endian. If the least significant byte is transmitted first, the format is called Little Endian.
Problems may arise if two devices in a SCA compliant radio use different endian formats but need to exchange data. In such a case, the data must be reformatted before it can be processed at the destination device. In the SCA, there is a standardized field that allows data to be marked to indicate whether it is in big endian or in little endian format. It is then the responsibility of processors at the destination device to reformat the received data, if necessary, before processing it. In the current procedure, the device sending the data always does so in its native endian mode.
Moreover, two devices may at times need to send data through a cryptographic unit that can accept only one of the two endian formats. Data that is marked as being in the other format is simply not accepted, thereby blocking communications between the devices on either side of the cryptographic unit. Since the SCA protocols require the destination device to change the endian format of received data if necessary, and not the data sending device, data that is not in the format accepted by the cryptographic unit can not be passed to a device on the other side of the unit, even if the data itself is not encrypted.
U.S. Pat. No. 6,341,345 (Jan. 22, 2002) describes modifications to a computer architecture to handle mixed endian data and code. The data and code are contained in memory blocks controlled by a memory management unit (MMU). Page descriptors in the MMU contain a bit indicating whether the page is to be accessed as little or big endian.
U.S. Pat. No. 6,772,320 (Aug. 3, 2004) relates to data sharing between mixed endian processors in a subnet management packet (SMP) environment via shared memory, and the requisite data structures needed by an SMP system to share mixed endian data. The patent does not apply to non-SMP systems, however.
U.S. Pat. No. 8,095,776 (Jan. 10, 2012) relates to a semiconductor device that can be used to transfer data in either little or big endian mode. The patent does otherwise address the matter of incompatibility between a standard CORBA and an encryption engine that lacks the patented device.
U.S. Pat. No. 7,203,636 (Apr. 10, 2007) relates to the emulation of a processor of a particular endianness (big or little) by a processor of the other endianness (little or big). The patent is not directed to network data transfer or with byte and bit order of data on a network channel. Rather, the patent concerns processor emulation and data addressing in memory.
U.S. Pat. No. 7,334,066 deals with the possibility of having big and little endian devices on a bus such as a PCI bus. While common practice does not allow placing big endian data on a PCI bus, the big endianness would be documented so that device driver writers would take this into account.
U.S. Pat. No. 7,721,077 (May 18, 2010) relates to an architectural feature of a computer that supports an endian conversion register inside the CPU register space. The intent is that a conversion between endianness would be transparently supported by compiler generated instructions, and U.S. Pat. No. 7,966,432 (Jun. 21, 2011) is also a hardware related patent. U.S. Pat. No. 7,835,523 relates to an abstraction layer for an encryption device, but does not address the byte order of data.
Notwithstanding the known art, a need exists for a technique by which data in either a big or a little endian format can pass through a cryptographic unit that only accepts data in one of the two formats.